perm filename SUBTR.SAI[PIC,HE] blob
sn#430346 filedate 1979-04-04 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 ENTRY SUBTR,ADDIM
C00006 ENDMK
C⊗;
ENTRY SUBTR,ADDIM;
BEGIN "SUBTR"
REQUIRE "BUFDEC.SAI" SOURCE!FILE;
INTERNAL SIMPLE INTEGER PROCEDURE SUBTR(INTEGER BUF1,BUF2);
COMMENT ******************************************
THIS PROCEDURE SUBTRACTS THE PICTURE IN BUF1 FROM THAT IN BUF2,
AND PLACES THE RESULT IN BUF3).
************************************************;
BEGIN "SUBTRXX"
INTEGER I,J,NEWBUF,PTR1,PTR2,PTR3,ISTOP,JSTOP;
IF BUFSZ(BUF1) ≠ BUFSZ(BUF2) THEN
PRINT("SUBTR: PICTURE NOT EQUAL IN SIZE - WILL NOT PROCESS",CRLF)
ELSE
BEGIN
GETBUF(ISTOP←ROWS(BUF1),JSTOP←COLMS(BUF1),BYTSZ(BUF1),NEWBUF←FNDBUF);
PUTSUB(ISUBST(BUF1),JSUBST(BUF1),NEWBUF);
COPHDR(BUF1,NEWBUF);
FOR I←1 THRU ISTOP DO
BEGIN
PTR1←INPTR(I,1,BUF1);
PTR2←INPTR(I,1,BUF2);
PTR3←OUTPTR(I,1,NEWBUF);
FOR J←1 THRU JSTOP DO
IDPB(ABS(ILDB(PTR1)-ILDB(PTR2)),PTR3);
END;
RETURN(NEWBUF);
END;
END "SUBTRXX";
INTERNAL SIMPLE INTEGER PROCEDURE ADDIM(INTEGER BUF1,BUF2,MODE);
COMMENT ******************************************
THIS PROCEDURE ADDS THE PICTURE IN BUF1 FROM THAT IN BUF2,
AND PLACES THE RESULT IN BUF3).
************************************************;
BEGIN "ADDIM"
INTEGER I,J,NEWBUF,PTR1,PTR2,PTR3,ISTOP,JSTOP,VMAX,VAL;
IF BUFSZ(BUF1) ≠ BUFSZ(BUF2) THEN
PRINT("ADDIM: PICTURE NOT EQUAL IN SIZE - WILL NOT PROCESS",CRLF)
ELSE
BEGIN
GETBUF(ISTOP←ROWS(BUF1),JSTOP←COLMS(BUF1),VMAX←BYTSZ(BUF1),NEWBUF←FNDBUF);
PUTSUB(ISUBST(BUF1),JSUBST(BUF1),NEWBUF);
COPHDR(BUF1,NEWBUF);
VMAX←(2↑VMAX)-1;
FOR I←1 THRU ISTOP DO
BEGIN
PTR1←INPTR(I,1,BUF1);
PTR2←INPTR(I,1,BUF2);
PTR3←OUTPTR(I,1,NEWBUF);
FOR J←1 THRU JSTOP DO
BEGIN
VAL←ILDB(PTR1)+ILDB(PTR2);
IF MODE=0 THEN IDPB(VAL,PTR3)
ELSE IDPB(VAL MIN VMAX,PTR3);;
END;
END;
RETURN(NEWBUF);
END;
END "ADDIM";
END "SUBTR";